home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / imappt.sty < prev    next >
Text File  |  1991-05-20  |  21KB  |  529 lines

  1. % This is the IMA preprint style file for amstex, imappt.sty.
  2. %  Authors: Bradley J. Lucier and Douglas N. Arnold.
  3. %
  4. % This is a style file for typesetting preprints and reports with AmSTeX,
  5. % version 1.0 or later.  It is used by the Institute of Mathematics and
  6. % its Applications for its preprint series.  There is a set of 
  7. % instructions for using this style file.  To obtain a copy, send the
  8. % message
  9. %
  10. % send imappt from siam
  11. %
  12. %  to research!netlib or netlib@anl-mcs.arpa, or contact
  13. %
  14. %   Prof. D. Arnold
  15. %   Department of Mathematics
  16. %   University of Maryland
  17. %   College Park, MD  20742
  18. %      dna@emmy.umd.edu
  19. %
  20. % This style file is unsupported.
  21. \catcode`\@=11
  22. \ifx\imapptloaded@AmS\relax\catcode`\@=\active
  23.  \endinput\else\let\imapptloaded@AmS\relax\fi
  24. \ifnum\mag=1000
  25.   \hsize 6.5 in
  26.   \vsize 9.0 in
  27.   \captionwidth@\hsize
  28.   \advance\captionwidth@-1.5in
  29. \else
  30.   \hsize 6.5 true in
  31.   \vsize 9.0 true in
  32.   \captionwidth@\hsize
  33.   \advance\captionwidth@-1.5 true in
  34. \fi
  35. \def\footertext{{\hbox to\hsize{\hfil\tenpoint\number\pageno\hfil}}}
  36. \newif\ifdraft@
  37. \draft@false
  38. \def\draft{%
  39. \draft@true
  40. \def\footertext{\hbox to\hsize{\relaxnext@\hphantom{\eightpoint\jobname\quad
  41.   \number\month/\number\day/\number\year\quad DRAFT}\hfil
  42.   \tenpoint\number\pageno\hfil
  43.   \eightpoint\jobname\quad\number\month/\number\day/\number\year\quad DRAFT}}
  44. }
  45. \def\footnoterule{\vskip-3\p@\hrule width 2 in \vskip 2.6\p@}
  46. \def\m@g{\mag\count@
  47.   \hsize 6.5 true in\vsize 9.0 true in\dimen\footins 8 true in\captionwidth@\hsize
  48.   \advance\captionwidth@-1.5 true in
  49. }
  50. \normallineskiplimit\p@
  51. \font@\ninerm=cmr9
  52. \font@\eightrm=cmr8
  53. \font@\sixrm=cmr6
  54. \font@\ninei=cmmi9    \skewchar\ninei='177
  55. \font@\eighti=cmmi8   \skewchar\eighti='177
  56. \font@\sixi=cmmi6     \skewchar\sixi='177
  57. \font@\ninesy=cmsy9   \skewchar\ninesy='60
  58. \font@\eightsy=cmsy8  \skewchar\eightsy='60
  59. \font@\sixsy=cmsy6    \skewchar\sixsy='60
  60. \font@\ninebf=cmbx9
  61. \font@\eightbf=cmbx8
  62. \font@\sixbf=cmbx6
  63. \font@\nineit=cmti9
  64. \font@\eightit=cmti8
  65. \font@\ninesl=cmsl9
  66. \font@\eightsl=cmsl8
  67. \font@\ninemsx=msxm9
  68. \font@\eightmsx=msxm8
  69. \font@\sixmsx=msxm6
  70. \font@\ninemsy=msym9
  71. \font@\eightmsy=msym8
  72. \font@\sixmsy=msym6
  73. \font@\tensmc=cmcsc10
  74. \font@\eightsmc=cmcsc10 scaled 800
  75. \def\tenpoint{\def\pointsize@{10}%
  76.  \normalbaselineskip 13.333333 pt
  77.  \abovedisplayskip 13.333333 pt plus 3.333333 pt minus 9.999999 pt
  78.  \belowdisplayskip 13.333333 pt plus 3.333333 pt minus 9.999999 pt
  79.  \abovedisplayshortskip 0 pt plus 3.333333 pt
  80.  \belowdisplayshortskip 7.777777 pt plus 3.333333 pt minus 4.444444 pt
  81.  \smallskipamount= 3.333333 pt plus 1.111111 pt minus 1.111111 pt
  82.  \medskipamount=6.666666 pt plus 2.222222 pt minus 2.222222 pt
  83.  \bigskipamount=13.333333 pt plus 4.444444 pt minus 4.444444 pt
  84.  \parskip=2 pt plus 1 pt
  85.  \parindent 16.666666 pt
  86.  \textfont@\rm\tenrm
  87.  \textfont@\it\tenit
  88.  \textfont@\sl\tensl
  89.  \textfont@\bf\tenbf
  90.  \textfont@\smc\tensmc
  91.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  92.  \let\big\tenbig@
  93.  \textfont\z@\tenrm  \scriptfont\z@\sevenrm  \scriptscriptfont\z@\fiverm
  94.  \textfont\@ne\teni  \scriptfont\@ne\seveni  \scriptscriptfont\@ne\fivei
  95.  \textfont\tw@\tensy \scriptfont\tw@\sevensy \scriptscriptfont\tw@\fivesy
  96.  \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  97.  \textfont\itfam\tenit
  98.  \textfont\slfam\tensl
  99.  \textfont\bffam\tenbf \scriptfont\bffam\sevenbf
  100.   \scriptscriptfont\bffam\fivebf
  101.  \textfont\msxfam=\tenmsx
  102.  \scriptfont\msxfam=\sevenmsx
  103.  \scriptscriptfont\msxfam=\fivemsx
  104.  \textfont\msyfam=\tenmsy
  105.  \scriptfont\msyfam=\sevenmsy
  106.  \scriptscriptfont\msyfam=\fivemsy
  107.  \fi
  108.  \setbox\strutbox\hbox{\vrule height8.5\p@ depth3.5\p@ width\z@}%
  109.  \setbox\strutbox@\hbox{\vrule height8\p@ depth3\p@ width\z@}%
  110.  \normalbaselines\tenrm\ex@=.2326ex}
  111. \def\eightpoint{\def\pointsize@{8}%
  112.  \normalbaselineskip10\p@
  113.  \abovedisplayskip10\p@ plus2.4\p@ minus7.2\p@
  114.  \belowdisplayskip10\p@ plus2.4\p@ minus7.2\p@
  115.  \abovedisplayshortskip\z@ plus2.4\p@
  116.  \belowdisplayshortskip5.6\p@ plus2.4\p@ minus3.2\p@
  117.  \smallskipamount=3\p@ plus 1\p@ minus 1\p@
  118.  \medskipamount=6\p@ plus 2\p@ minus 2\p@
  119.  \bigskipamount=12\p@ plus 4\p@ minus 4\p@
  120.  \parskip=0\p@ plus 1\p@
  121.  \parindent 11.111111 pt
  122.  \textfont@\rm\eightrm
  123.  \textfont@\it\eightit
  124.  \textfont@\sl\eightsl
  125.  \textfont@\bf\eightbf
  126.  \textfont@\smc\eightsmc
  127.  \ifsyntax@\def\big##1{{\hbox{$\left##1\right.$}}}\else
  128.  \let\big\eightbig@
  129.  \textfont\z@\eightrm \scriptfont\z@\sixrm  \scriptscriptfont\z@\fiverm
  130.  \textfont\@ne\eighti \scriptfont\@ne\sixi  \scriptscriptfont\@ne\fivei
  131.  \textfont\tw@\eightsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivesy
  132.  \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  133.  \textfont\itfam\eightit
  134.  \textfont\slfam\eightsl
  135.  \textfont\bffam\eightbf \scriptfont\bffam\sixbf
  136.    \scriptscriptfont\bffam\fivebf
  137.  \textfont\msxfam=\eightmsx
  138.  \scriptfont\msxfam=\sixmsx
  139.  \scriptscriptfont\msxfam=\fivemsx
  140.  \textfont\msyfam=\eightmsy
  141.  \scriptfont\msyfam=\sixmsy
  142.  \scriptscriptfont\msyfam=\fivemsy
  143.  \fi
  144.  \setbox\strutbox\hbox{\vrule height7\p@ depth3\p@ width\z@}%
  145.  \setbox\strutbox@\hbox{\vrule height6.5\p@ depth2.5\p@ width\z@}%
  146.  \normalbaselines\eightrm\ex@=.2326ex}
  147. \def\tenbig@#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
  148. \def\eightbig@#1{{\hbox{$\textfont\z@\ninerm\textfont\tw@\ninesy
  149.  \left#1\vbox to6.5\p@{}\right.\n@space$}}}
  150. \def\footmarkform@#1{$^{#1}$}
  151. \let\thefootnotemark\footmarkform@
  152. \def\makefootnote@#1#2{\insert\footins
  153.  {\interlinepenalty\interfootnotelinepenalty
  154.  \eightpoint\splittopskip\ht\strutbox\splitmaxdepth\dp\strutbox
  155.  \floatingpenalty\@MM\leftskip\z@\rightskip\z@\spaceskip\z@\xspaceskip\z@
  156.  \indent{#1}\footstrut\ignorespaces#2\unskip\lower\dp\strutbox
  157.  \vbox to\dp\strutbox{}}}
  158. \footmarkcount@\z@
  159. \def\footnotemark{\let\@sf\empty\relaxnext@\ifhmode\edef
  160.  \@sf{\spacefactor\the\spacefactor}\/\fi
  161.  \def\next@{\ifx[\next\let\next\nextii@\else
  162.   \ifx"\next\let\next\nextiii@\else
  163.   \let\next\nextiv@\fi\fi\next}%
  164.  \def\nextii@[##1]{\footmarkform@{##1}\@sf}%
  165.  \def\nextiii@"##1"{{##1}\@sf}%
  166.  \def\nextiv@{\global\advance\footmarkcount@\@ne
  167.   \footmarkform@{\number\footmarkcount@}\@sf}%
  168.  \futurelet\next\next@}
  169. \def\footnotetext{\relaxnext@
  170.  \def\next@{\ifx[\next\let\next\nextii@\else
  171.   \ifx"\next\let\next\nextiii@\else
  172.   \let\next\nextiv@\fi\fi\next}%
  173.  \def\nextii@[##1]##2{\makefootnote@{\footmarkform@{##1}}{##2}}%
  174.  \def\nextiii@"##1"##2{\makefootnote@{##1}{##2}}%
  175.  \def\nextiv@##1{\makefootnote@{\footmarkform@{\number\footmarkcount@}}{##1}}%
  176.  \futurelet\next\next@}
  177. \def\footnote{\let\@sf\empty\relaxnext@\ifhmode\edef
  178.  \@sf{\spacefactor\the\spacefactor}\/\fi
  179.  \def\next@{\ifx[\next\let\next\nextii@\else
  180.   \ifx"\next\let\next\nextiii@\else
  181.   \let\next\nextiv@\fi\fi\next}%
  182.  \def\nextii@[##1]##2{\footnotemark[##1]\footnotetext[##1]{##2}}%
  183.  \def\nextiii@"##1"##2{\footnotemark"##1"\footnotetext"##1"{##2}}%
  184.  \def\nextiv@##1{\footnotemark\footnotetext{##1}}%
  185.  \futurelet\next\next@}
  186. \def\adjustfootnotemark#1{\advance\footmarkcount@#1\relax}
  187. \let\topmatter\relax
  188. \newbox\titlebox@
  189. \setbox\titlebox@\vbox{}
  190. \Invalid@\overlong
  191. \def\overlong@{\def\next@{\ifx\next\overlong\def\filhss@
  192.  {plus\@m\p@ minus\@m\p@}\def\next@\overlong{\nextii@}\else
  193.  \def\filhss@{plus\@m\p@\relax}\let\next@\nextii@\fi\next@}}
  194. \def\title{\relaxnext@
  195.  \def\nextii@##1\endtitle{{\let\\=\cr
  196.  \global\setbox\titlebox@\vbox{\tabskip\z@\filhss@
  197.  \halign to\hsize{\tenpoint\bf\hfil\ignorespaces####\unskip\hfil\cr##1\cr}}}}%
  198.  \overlong@
  199.  \futurelet\next\next@}
  200. \newif\ifauthor@
  201. \newbox\authorbox@
  202. \def\author{\relaxnext@
  203.  \def\nextii@##1\endauthor{{\let\\=\cr
  204.  \global\setbox\authorbox@\vbox{\tabskip\z@\filhss@
  205.  \halign to\hsize{\tenpoint\smc\hfil\ignorespaces####\unskip\hfil\cr##1\cr
  206.  }}}}\overlong@\global\author@true
  207.  \futurelet\next\next@}
  208. \def\affil{\Err@{Do not use \string\affil\space in the IMA style}}
  209. \def\endaffil{\Err@{Do not use \string\endaffil\space in the IMA style}}
  210. \def\address{\Err@{Do not use \string\address\space in the IMA style}}
  211. \def\date{\Err@{Do not use \string\date\space in the IMA style}}
  212. \def\thanks{\Err@{Do not use \string\thanks\space in the IMA style}}
  213. \Invalid@\nofrills
  214. \Invalid@\usualspace
  215. \newif\ifnofrills@
  216. \def\usualspace@#1{\ifnofrills@\def\usualspace{#1}\fi}
  217. \def\nofrills@#1#2{\def\next@{\ifx\next\nofrills\nofrills@true\let#2\relax
  218.  \def\next@\nofrills{\nextii@}\else\nofrills@false
  219.  \def#2{#1}\let\next@\nextii@\fi\next@}}
  220. \def\proclaim{\innerproclaim@}
  221. \def\endproclaim{\innerendproclaim@}
  222. \newif\ifabstract@
  223. \def\theabstract@{}
  224. \def\abstract{\relaxnext@\nofrills@{{\bf Abstract.\enspace}}\abstract@
  225.  \long\def\nextii@##1{\long\gdef\theabstract@{\usualspace@
  226.   {{\eightpoint\enspace}}\eightpoint\abstract@\ignorespaces##1\par}}%
  227.  \global\abstract@true
  228.  \futurelet\next\next@}
  229. \newif\ifkeywords@
  230. \def\thekeywords@{}
  231. \def\keywords{\relaxnext@\nofrills@{{\bf Key words.\enspace}}\keywords@
  232.  \long\def\nextii@##1{\long\gdef\thekeywords@{\usualspace@
  233.   {{\eightpoint\enspace}}\eightpoint\keywords@\ignorespaces##1\par}}%
  234.  \global\keywords@true
  235.  \futurelet\next\next@}
  236. \newif\ifsubjclass@
  237. \def\thesubjclass@{}
  238. \def\subjclass{\relaxnext@\nofrills@{{\bf AMS(MOS) subject classifications (1985 revision).\enspace}}\subjclass@
  239.  \long\def\nextii@##1{\long\gdef\thesubjclass@{\usualspace@
  240.   {{\eightpoint\enspace}}\eightpoint\subjclass@\ignorespaces##1\par}}%
  241.  \global\subjclass@true
  242.  \futurelet\next\next@}
  243. \def\pretitle{}
  244. \def\preauthor{}
  245. \def\preabstract{}
  246. \def\prekeywords{}
  247. \def\presubjclass{}
  248. \def\prepaper{}
  249. \def\endtopmatter{\hrule height\z@\vskip-\topskip
  250.  \pretitle
  251.  \vskip 26.666666 pt plus 13.333333 pt minus 13.333333 pt
  252.  \unvbox\titlebox@
  253.  \preauthor
  254.  \ifauthor@\vskip 13.333333 pt plus 6.666666 pt minus 3.333333 pt\unvbox\authorbox@\fi
  255.  \preabstract
  256.  \ifabstract@\vskip 16.666666 pt plus 13.333333 pt minus 13.333333 pt
  257.   {\eightpoint\indent\theabstract@}\fi
  258.  \prekeywords
  259.  \ifkeywords@\vskip 8.333333 pt plus 6.666666 pt minus 6.666666 pt
  260.   {\eightpoint\indent\thekeywords@}\fi
  261.  \presubjclass
  262.  \ifsubjclass@\vskip 8.333333 pt plus 6.666666 pt minus 6.666666 pt
  263.   {\eightpoint\indent\thesubjclass@}\fi
  264.  \prepaper
  265.  \outer\def\proclaim{\innerproclaim@}%
  266.  \outer\def\endproclaim{\innerendproclaim@}%
  267.  \vskip 20 pt plus 13.333333 pt minus 6.666666 pt \tenpoint}
  268. \outer\def\enddocument{\vfill\supereject\end}
  269. \newbox\headingbox@
  270. \outer\def\heading{\relaxnext@
  271.  \def\nextii@{\bigbreak\bgroup\let\\=\cr
  272.  \global\setbox\headingbox@\vbox\bgroup\tabskip\z@\filhss@
  273.  \halign to\hsize\bgroup\tenpoint\smc\hfil\ignorespaces####\unskip\hfil\cr}%
  274.  \overlong@
  275.  \futurelet\next\next@}
  276. \def\endheading{\cr\egroup\egroup\egroup\unvbox\headingbox@
  277.  \nobreak\medskip}
  278. \def\subheading{\relaxnext@\nofrills@{.\enspace}\subheading@
  279.  \def\nextii@##1{\medbreak\indent{\usualspace@{{\bf\enspace}}%
  280.   \tenpoint\bf\ignorespaces##1\unskip\subheading@}\ignorespaces}%
  281.  \futurelet\next\next@}
  282. \newif\ifproclaim@
  283. \def\innerproclaim@{\relaxnext@\nofrills@{.\enspace}\proclaim@
  284.  \def\nextii@##1{\medbreak\indent\def\next{8}%
  285.   {\usualspace@{{\smc\enspace}}\smc\ignorespaces##1\unskip\proclaim@}\sl
  286.   \ifproclaim@\Err@{Previous \expandafter
  287.  \eat@\string\\proclaim has no matching \expandafter
  288.  \eat@\string\\endproclaim}\else\proclaim@true\fi\ignorespaces}%
  289.  \futurelet\next\next@}
  290. \def\innerendproclaim@{\proclaim@false\par\rm
  291.  \ifdim\lastskip<\medskipamount\removelastskip\penalty55 \medskip\fi}
  292. \def\demo{\relaxnext@\nofrills@{.\enspace}\demo@
  293.  \def\nextii@##1{\par\ifdim\lastskip<\smallskipamount\removelastskip
  294.   \smallskip\fi\indent{\usualspace@{{\sl\enspace}}%
  295.   \sl\ignorespaces##1\unskip\demo@}\rm
  296.   \ifproclaim@\Err@{Previous \expandafter
  297.   \eat@\string\\proclaim had no matching \expandafter
  298.   \eat@\string\\endproclaim}\fi\ignorespaces}%
  299.  \futurelet\next\next@}
  300. \def\enddemo{\par\smallskip}
  301. \def\qed{\ifhmode\unskip\nobreak\fi\ifmmode\ifinner\else\hskip5\p@\fi\fi
  302.  \hbox{\hskip5\p@\lower 1.5 pt\hbox{\vrule width .2 pt \vbox{\hrule width 4 pt height .2 pt \vskip 7.1 pt\hrule width 4 pt height .2 pt }\unskip\vrule width .2 pt}\hskip\p@}}
  303. \def\cite#1{\relaxnext@
  304.  \def\nextiii@##1,##2\end@{[{\rm##1},##2]}%
  305.  \in@,{#1}\ifin@\def\next{\nextiii@#1\end@}\else
  306.  \def\next{[{\rm#1}]}\fi\next}
  307. \newcount\rostercount@
  308. \newdimen\rosterindent
  309. \newdimen\rosterindent@
  310. \newdimen\labelwidth@
  311. \rosterindent=16.666667 pt
  312. \rosterindent@=16.666667 pt
  313. \newif\iffirstitem@
  314. \newtoks\everypartoks@
  315. \let\plainitem@\item
  316. \def\par@{\everypartoks@=\expandafter{\the\everypar}\everypar{}}
  317. \def\roster{\global\advance\rosterindent@\rosterindent\labelwidth@=\rosterindent@
  318.  \advance\labelwidth@-3.888888 pt\relax
  319.  \edef\leftskip@{\leftskip\the\leftskip}\relaxnext@
  320.  \rostercount@\z@\def\item{\futurelet\next\rosteritem@}%
  321.  \def\next@{\ifx\next\runinitem\let\next\nextii@\else
  322.   \let\next\nextiii@\fi\next}%
  323.  \def\nextii@\runinitem{\unskip
  324.   \def\next@{\ifx\next[\let\next\nextii@\else
  325.    \ifx\next"\let\next\nextiii@\else\let\next\nextiv@\fi\fi\next}%
  326.   \def\nextii@[####1]{\rostercount@####1\relax
  327.    \enspace{\rm(\number\rostercount@)}~\ignorespaces}%
  328.   \def\nextiii@"####1"{\enspace{\rm####1}~\ignorespaces}%
  329.   \def\nextiv@{\enspace{\rm(1)}\rostercount@\@ne~}%
  330.   \par@\firstitem@false
  331.   \futurelet\next\next@}%
  332.  \def\nextiii@{\par\par@\penalty\@m\smallskip
  333.   \firstitem@true}%
  334.  \futurelet\next\next@}
  335. \def\rosteritem@{\iffirstitem@\firstitem@false\else\par\fi
  336.  \leftskip\rosterindent@\noindent
  337.  \def\next@[##1]{\rostercount@##1\relax
  338.   \llap{\hbox to\labelwidth@{\hss\rm(\number\rostercount@)}\hskip
  339.   3.888888 pt}\ignorespaces}%
  340.  \def\nextii@"##1"{%
  341.   \llap{\hbox to\labelwidth@{\hss\rm##1}\hskip3.888888 pt}\ignorespaces}%
  342.  \def\nextiii@{\advance\rostercount@\@ne
  343.   \llap{\hbox to\labelwidth@{\hss\rm(\number\rostercount@)}\hskip
  344.   3.888888 pt}}%
  345.  \ifx\next[\let\next\next@\else\ifx\next"\let\next\nextii@\else
  346.  \let\next\nextiii@\fi\fi\next}
  347. \def\therosteritem#1{{\rm(\ignorespaces#1\unskip)}}
  348. \newif\ifnextRunin@
  349. \def\endroster{\global\advance\rosterindent@-\rosterindent\relax
  350.  \relaxnext@\par\leftskip@
  351.  \penalty-50 \vskip-\parskip\smallskip
  352.  \def\next@{\ifx\next\Runinitem\let\next@\relax
  353.   \else\nextRunin@false\let\item\plainitem@\ifx\next\par
  354.   \def\next@\par{\everypar=\expandafter{\the\everypartoks@}}%
  355.   \else\def\next@{\noindent\everypar=\expandafter{\the\everypartoks@}}%
  356.   \fi\fi\next@}%
  357.  \futurelet\next\next@}
  358. \newcount\rosterhangafter@
  359. \def\Runinitem#1\roster\runinitem{\relaxnext@\rostercount@\z@
  360.  \def\item{\futurelet\next\rosteritem@}%
  361.  \def\runinitem@{#1}%
  362.  \def\next@{\ifx\next[\let\next\nextii@\else\ifx\next"\let\next\nextiii@
  363.   \else\let\next\nextiv@\fi\fi\next}%
  364.  \def\nextii@[##1]{\rostercount@##1\relax\def\item@{{\rm(\number
  365.   \rostercount@)}}\nextv@}%
  366.  \def\nextiii@"##1"{\def\item@{{\rm##1}}\nextv@}%
  367.  \def\nextiv@{\advance\rostercount@\@ne\def\item@{{\rm(\number
  368.   \rostercount@)}}\nextv@}%
  369.  \def\nextv@{\setbox\z@\vbox
  370.   {\ifnextRunin@\noindent\fi
  371.   \runinitem@\unskip\enspace\item@~\par
  372.   \global\rosterhangafter@\prevgraf}%
  373.   \firstitem@false\ifnextRunin@\else\par\fi
  374.   \hangafter\rosterhangafter@\hangindent\rosterindent@
  375.   \ifnextRunin@\noindent\fi\runinitem@\unskip\enspace
  376.   \item@~\ifnextRunin@\else\par@\fi\nextRunin@true\ignorespaces}%
  377.  \futurelet\next\next@}
  378. \outer\def\Refs{\relaxnext@\def\refskip@{\hskip\@ne sp\hskip\m@ne sp}%
  379.  \def\next@{\ifx\next\nofrills\def\next@\nofrills{\nextii@}\else
  380.   \def\next@{\nextii@{REFERENCES}}\fi\next@}%
  381.  \def\nextii@##1{\bigskip\goodbreak\hbox to\hsize{\hfil\eightpoint
  382.   \rm\ignorespaces##1\unskip\hfil}\nobreak
  383.   \bigskip\eightpoint\sfcode`.=\@m}%
  384.  \futurelet\next\next@}
  385. \newbox\nobox@        \newbox\keybox@        \newbox\bybox@
  386. \newbox\bysamebox@    \newbox\paperbox@      \newbox\paperinfobox@
  387. \newbox\jourbox@      \newbox\volbox@        \newbox\issuebox@
  388. \newbox\yrbox@                               \newbox\pagesbox@
  389. \newbox\bookbox@
  390. \newbox\bookinfobox@  \newbox\publbox@       \newbox\publaddrbox@
  391. \newbox\finalinfobox@
  392. \newif\ifno@          \newif\ifkey@          \newif\ifby@ \newif\ifmanyby@
  393. \newif\ifbysame@      \newif\ifpaper@        \newif\ifpaperinfo@
  394. \newif\ifjour@        \newif\ifvol@          \newif\ifissue@
  395. \newif\ifyr@ \newif\iftoappear@              \newif\ifpages@ \newif\ifpage@
  396. \newif\ifbook@ \newif\ifinbook@
  397. \newif\ifbookinfo@    \newif\ifpubl@         \newif\ifpubladdr@
  398. \newif\iffinalinfo@   \newif\ifafterbook@
  399. \newif\iffirstref@    \newif\iflastref@      \newif\ifprevjour@
  400. \newif\ifprevbook@    \newif\ifprevinbook@   \newif\ifnojourinfo@
  401. \newdimen\maxbysamerule@
  402. \maxbysamerule@1in
  403. \def\ref@{\global\no@false\global\key@false\global\by@false
  404.  \global\bysame@false\global\paper@false\global\paperinfo@false
  405.  \global\jour@false\global\vol@false\global\issue@false
  406.  \global\yr@false\global\toappear@false\global\pages@false\global\page@false
  407.  \global\book@false\global\inbook@false
  408.  \global\bookinfo@false\global\publ@false\global\publaddr@false
  409.  \global\finalinfo@false
  410.  \bgroup\ignorespaces}
  411. \Invalid@\moreref
  412. \outer\def\ref{\begingroup
  413.  \noindent\hangindent 22.222222 pt\hangafter\@ne\firstref@true
  414.  \lastref@false\def\moreref{\egroup\endref@\global\firstref@false\ref@}\ref@}
  415. \def\refdef@#1#2{\def#1{\egroup
  416.  \csname\expandafter\eat@\string#1@true\endcsname
  417.  \expandafter\setbox
  418.  \csname\expandafter\eat@\string#1box@\endcsname\hbox\bgroup#2}}
  419. \refdef@\no\relax \refdef@\key\relax
  420. \def\manyby{\egroup\global\manyby@true\by@true\setbox\bybox@\hbox\bgroup\smc}
  421. \def\by{\egroup\by@true\bysame@false\global\manyby@false
  422.  \setbox\bybox@\hbox\bgroup\smc}
  423. \def\bysame{\egroup\bysame@true\bgroup}
  424. \refdef@\paper\sl
  425. \refdef@\paperinfo\relax
  426. \def\jour{\egroup\jour@true\prevjour@true\setbox
  427.  \jourbox@\hbox\bgroup}
  428. \refdef@\vol\rm
  429. \refdef@\issue\relax \refdef@\yr\relax
  430. \def\toappear{\egroup\toappear@true\bgroup}
  431. \refdef@\pages\relax
  432. \def\page{\egroup\page@true\setbox\pagesbox@\hbox\bgroup}
  433. \refdef@\book\sl
  434. \def\inbook{\egroup\inbook@true\previnbook@true\setbox
  435.  \bookbox@\hbox\bgroup\rm}
  436. \refdef@\bookinfo\relax
  437. \refdef@\publ\relax
  438. \refdef@\publaddr\relax
  439. \refdef@\finalinfo\relax
  440. \def\setpunct@{\def\prepunct@{\ifnum\lastpenalty<0
  441.  \edef\penalty@{\penalty\the\lastpenalty}\unpenalty,
  442.   \penalty@\relax\space\else
  443.  \ifdim\lastskip=\@ne sp\unskip\unskip
  444.  \edef\penalty@{\penalty\the\lastpenalty}\unpenalty,
  445.   \penalty@\relax\space
  446.  \else,\space\fi\fi\afterbook@false}}
  447. \def\ppunbox@#1{\prepunct@\unhbox#1\unskip}
  448. \def\endref@{\let\prepunct@\relax
  449.  \iffirstref@
  450.   \ifno@\hbox to 22.222222 pt {\hss[\unhbox\nobox@\unskip]\kern 8.5 pt}\else
  451.   \ifkey@\hbox to 22.222222 pt{\hss\unhbox\keybox@\unskip\kern 8.5pt}\else\hbox to 8.5pt {}\fi\fi
  452.   \ifmanyby@
  453.    \ifby@\hbox{\unhcopy\bybox@\unskip}\setpunct@
  454.   \global\setbox\bysamebox@\hbox{\unhcopy\bybox@\unskip}\else
  455.   \ifbysame@\ifdim\wd\bysamebox@>\maxbysamerule@
  456.     \hbox to\maxbysamerule@{\leaders\hrule height 2.2pt depth -2pt\hfill}\else
  457.     \hbox to \wd\bysamebox@{\leaders\hrule height 2.2pt depth -2pt\hfill}\fi\,\setpunct@\fi
  458.    \fi
  459.   \else
  460.   \ifby@\unhcopy\bybox@\unskip\setpunct@\fi\fi
  461.  \fi
  462.  \ifpaper@\ppunbox@\paperbox@\setpunct@\fi
  463.  \ifpaperinfo@\ppunbox@\paperinfobox@\setpunct@\fi
  464.  \ifjour@\ppunbox@\jourbox@\setpunct@
  465.    \ifvol@\ppunbox@\volbox@\unskip\setpunct@\fi
  466.    \ifissue@\ \unhbox\issuebox@\unskip\setpunct@\fi
  467.    \ifyr@\ (\unhbox\yrbox@\unskip)\setpunct@\fi
  468.    \iftoappear@\ (to appear)\setpunct@\fi
  469.    \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  470.    \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  471.  \else
  472.   \ifprevjour@\unskip\nojourinfo@false
  473.    \ifvol@\else\ifissue@\else\ifyr@\else\nojourinfo@true\fi\fi\fi
  474.    \ifnojourinfo@\else,\fi
  475.    \ifvol@\ppunbox@\volbox@\unskip\setpunct@\fi
  476.    \ifissue@\ \unhbox\issuebox@\unskip\setpunct@\fi
  477.    \ifyr@\ (\unhbox\yrbox@\unskip)\setpunct@\fi
  478.    \iftoappear@\ (to appear)\setpunct@\fi
  479.    \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  480.    \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  481.   \fi
  482.  \fi
  483.  \ifbook@\prepunct@\unhbox\bookbox@\unskip\afterbook@true\setpunct@\fi
  484.  \ifinbook@\prepunct@\unskip\ in \unhbox\bookbox@\unskip\afterbook@true
  485.   \setpunct@\global\book@true\fi
  486.  \ifbookinfo@\ppunbox@\bookinfobox@\setpunct@\fi
  487.  \ifpubl@\ppunbox@\publbox@\setpunct@\fi
  488.  \ifpubladdr@\ppunbox@\publaddrbox@\setpunct@\fi
  489.  \ifbook@
  490.   \ifyr@\prepunct@\unhbox\yrbox@\unskip\setpunct@\fi
  491.   \iftoappear@\ifafterbook@\fi\prepunct@ to appear\afterbook@false
  492.    \setpunct@\fi
  493.   \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  494.   \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  495.  \else
  496.   \ifprevinbook@\unskip
  497.    \ifyr@\prepunct@\unhbox\yrbox@\unskip\setpunct@\fi
  498.    \iftoappear@\prepunct@ to appear\setpunct@\fi
  499.    \ifpages@\prepunct@ pp.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  500.    \ifpage@\prepunct@ p.\ \unhbox\pagesbox@\unskip\setpunct@\fi
  501.   \fi
  502.  \fi
  503. \iffinalinfo@.\afterbook@false
  504. \spacefactor3000\relax\space\unhbox\finalinfobox@\else
  505.  \iflastref@.\afterbook@false\else;
  506.   \afterbook@false\space\fi
  507. \fi}
  508. \def\endref{\egroup\global\lastref@true\endref@\global\prevjour@false\global
  509.  \previnbook@false\par\endgroup}
  510. \newif\iflogo@
  511. \def\nologo{\logo@false}
  512. \def\logo{\logo@true}
  513. \logo@false
  514. \output={\output@}
  515. \def\output@{%
  516.  \ifnum\pageno=\@ne\shipout\vbox{\vbox to\vsize
  517.   {\boxmaxdepth\maxdepth\pagecontents}\baselineskip2pc
  518.   \iflogo@\hbox to\hsize{\hfil\eightpoint Typeset by \AmSTeX}
  519.   \else\ifdraft@\footertext\fi\fi}\else
  520.  \shipout\vbox{\vbox to\vsize
  521.   {\boxmaxdepth\maxdepth\pagecontents}\baselineskip2pc
  522.   \footertext}%
  523.  \fi
  524.  \global\advance\pageno\@ne
  525.  \ifnum\outputpenalty>-\@MM\else\dosupereject\fi}
  526. \tenpoint
  527. \catcode`\@=\active
  528. \def\styname{imappt}\def\styversion{1.2}
  529.